package com.zhendong.gulimall.coupon;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * 1、如何使用nacos作为配置中心统一配置
 *
 * 1）、引入依赖
 * 2）、创建一个配置文件bootstrap.properties
 *       spring.application.name=应用名字
 *       spring.cloud.nacos.config.server-addr=127.0.0.1:8848
 * 3）、需要给配置中心添加一个叫 数据集（Data id）gulimall-coupon.properties。默认规则：应用名.properties[这个在控制台有个日志打印可以看到]
 * 4）、给应用名.properties添加任何配置
 * 5）、动态获取配置
 *      @RefreshScope 动态获取并且刷新配置
 *      @Value("${配置项的名字}")  获取到配置
 *      优先使用配置中心的配置
 *
 * 2、细节
 *  1）、命名空间：作用是配置隔离
 *      默认：public（保留空间），默认新增所有的配置都在这里。可以基于两个维度来新增
 *      1、开发，测试，生产。利用命名空间来做环境隔离，在otstrap.properties中指定 spring.cloud.nacos.config.namespace=xxx
 *      2、每一个微服务之间互相隔离，微服务创建自己的命名空间，每个微服务只加载自己的配置
 *
 *  2）、配置集
 *  3）、配置集id
 *      Data Id:类似文件名
 *  4）、配置分组
 *      默认所有的配置集都属于：DEFAULT_GROUP。可以使用双11，618，或者dev，prod，test
 *
 * 3、同时加载多个配置集
 *      1）、只需要在bootstrap.properties说明加载配置中心的哪个配置集就可以
 *      2）、@Value，@ConfigurationProperties,以前springboot任何方法从配置文件中获取都能使用
 */
@EnableDiscoveryClient   //nacos注册中心  1：有这个注解  2：yml中配置nacos地址即可使用
@SpringBootApplication
@MapperScan("com.zhendong.gulimall.coupon.dao")
public class CouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(CouponApplication.class, args);
    }

}
